unit SmallStruct.ActionView;

interface

uses Classes,
  Controls,
  SmallStruct.Core,
  SmallStruct.View;

const
  SS_ACTIONVIEW_FACTORY_NAME: string = 'ACTIONVIEW_FACTORY';
  SS_ACTION_PANEL_NAME: string = 'ACTION_PANEL';

type
  ISSActionView = interface(ISSRuntimeObject)
    ['{DD0E4077-2C82-4039-BAEF-4669ACB45F50}']
    function GetView: ISSView;
    procedure CloseActionView;
    procedure DisableActionView;
    procedure DisplayActionView;
    procedure EnableActionView;
    procedure SetView(AView: ISSView);
  end;

  ISSActionButton = interface(ISSObject)
    ['{2DECF63E-6D31-486A-AB02-E64FF1C0105F}']
    function GetActionName: string;
    function GetActionCaption: string;
    procedure SetClickEvent(AEvent: TNotifyEvent);
  end;

  ISSActionViewFactory = interface(ISSObject)
    ['{15EA2673-D889-4AA2-B0D5-5FED15DC12B5}']
    function GetActionView(const AActionViewName: string): ISSActionView;
    procedure FreeActionView(AActionView: ISSActionView);
  end;

  ISSActionPanelContext = interface(ISSObjectContext)
    ['{4977CFDD-03E5-48D0-95F7-AAA27EC7689D}']
    function GetActionConfiguration: ISSObjectContainer;
  end;

  ISSActionPanel = interface(ISSRuntimeObject)
    ['{A29261C7-399C-41E2-ACFF-F8BE65567650}']
    function GetActionButtonContainer: ISSObjectContainer;
  end;

implementation

end.
